Leadtools.Dicom.Scu Namespace > PerformedProcedureStepScu Class > Create Method : Create<TData>(DicomScp,TData,BeforeAddTagDelegate) Method |
'Declaration Public Overloads Sub Create(Of TData)( _ ByVal Scp As DicomScp, _ ByVal Data As TData, _ ByVal beforeAdd As BeforeAddTagDelegate _ )
'Usage Dim instance As PerformedProcedureStepScu Dim Scp As DicomScp Dim Data As TData Dim beforeAdd As BeforeAddTagDelegate instance.Create(Of TData)(Scp, Data, beforeAdd)
Private WorkList As New List(Of ModalityWorklistResult)() Public Sub BeforeTagTest() DicomEngine.Startup() DicomNet.Startup() Dim query As New ModalityWorklistQuery() Dim scp As New DicomScp() Dim findMwl As New QueryRetrieveScu() scp.AETitle = "MWL_SERVER" scp.Port = 104 scp.Timeout = 60 scp.PeerAddress = IPAddress.Parse("192.168.0.209") findMwl.AETitle = "LEAD_CLIENT" findMwl.Find(Of ModalityWorklistQuery, ModalityWorklistResult)(scp, query, AddressOf NewWorklist) ' ' Create a Modality Perform Procedure Step If WorkList.Count > 0 Then Dim mpps As ModalityPerformedProcedureStep = ModalityPerformedProcedureStep.From(WorkList(0)) Dim pps As New PerformedProcedureStepScu() pps.AETitle = "LEAD_CLIENT" ' ' Initialize required procedure step variables ' mpps.PerformedStationAeTitle = Environment.MachineName mpps.PerformedProcedureStepStartDate = DateTime.Now mpps.PerformedProcedureStepStartTime = DateTime.Now mpps.PerformedSeriesSequence(0).ProtocolName = ModalityPerformedProcedureStep.RandomId(16) mpps.PerformedSeriesSequence(0).SeriesInstanceUID = "1.2.3.4.5.890.1232" mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" & DateTime.Now.Ticks.ToString() Try pps.Create(Of ModalityPerformedProcedureStep)(scp, mpps, New BeforeAddTagDelegate(AddressOf BeforeAddTagDelegate)) ' ' Set the procedure step to done ' mpps.PerformedProcedureStepEndDate = DateTime.Now mpps.PerformedProcedureStepEndTime = DateTime.Now mpps.PerformedProcedureStepStatus = "COMPLETED" pps.[Set](Of ModalityPerformedProcedureStep)(scp, mpps, New BeforeAddTagDelegate(AddressOf BeforeAddTagDelegate)) Catch e As Exception Console.WriteLine(e.Message) End Try End If DicomEngine.Shutdown() DicomNet.Startup() End Sub Private Sub NewWorklist(ByVal result As ModalityWorklistResult, ByVal ds As DicomDataSet) WorkList.Add(result) End Sub Private Function BeforeAddTagDelegate(ByVal parent As LinkedList(Of Long), ByVal data As Object, ByVal tag As Long) As Boolean Dim dcmTag As DicomTag = DicomTagTable.Instance.Find(tag) If dcmTag IsNot Nothing Then Console.WriteLine("Tag: " & dcmTag.Name) Else Console.WriteLine(String.Format("Tag: {0:x4}:{1:x4}", DicomExtensions.GetGroup(tag), DicomExtensions.GetElement(tag))) End If Return True End Function
List<ModalityWorklistResult> WorkList = new List<ModalityWorklistResult>(); public void BeforeTagTest() { DicomEngine.Startup(); DicomNet.Startup(); ModalityWorklistQuery query = new ModalityWorklistQuery(); DicomScp scp = new DicomScp(); QueryRetrieveScu findMwl = new QueryRetrieveScu(); scp.AETitle = "MWL_SERVER"; scp.Port = 104; scp.Timeout = 60; scp.PeerAddress = IPAddress.Parse("192.168.0.209"); findMwl.AETitle = "LEAD_CLIENT"; findMwl.Find<ModalityWorklistQuery, ModalityWorklistResult>(scp, query, NewWorklist); // // Create a Modality Perform Procedure Step if (WorkList.Count > 0) { ModalityPerformedProcedureStep mpps = ModalityPerformedProcedureStep.From(WorkList[0]); PerformedProcedureStepScu pps = new PerformedProcedureStepScu(); pps.AETitle = "LEAD_CLIENT"; // // Initialize required procedure step variables // mpps.PerformedStationAeTitle = Environment.MachineName; mpps.PerformedProcedureStepStartDate = DateTime.Now; mpps.PerformedProcedureStepStartTime = DateTime.Now; mpps.PerformedSeriesSequence[0].ProtocolName = ModalityPerformedProcedureStep.RandomId(16); mpps.PerformedSeriesSequence[0].SeriesInstanceUID = "1.2.3.4.5.890.1232"; mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" + DateTime.Now.Ticks.ToString(); try { pps.Create<ModalityPerformedProcedureStep>(scp, mpps,new BeforeAddTagDelegate(BeforeAddTagDelegate)); // // Set the procedure step to done // mpps.PerformedProcedureStepEndDate = DateTime.Now; mpps.PerformedProcedureStepEndTime = DateTime.Now; mpps.PerformedProcedureStepStatus = "COMPLETED"; pps.Set<ModalityPerformedProcedureStep>(scp, mpps, new BeforeAddTagDelegate(BeforeAddTagDelegate)); } catch (Exception e) { Console.WriteLine(e.Message); } } DicomEngine.Shutdown(); DicomNet.Startup(); } private void NewWorklist(ModalityWorklistResult result, DicomDataSet ds) { WorkList.Add(result); } private bool BeforeAddTagDelegate(LinkedList<long> parent, object data, long tag) { DicomTag dcmTag = DicomTagTable.Instance.Find(tag); if (dcmTag != null) { Console.WriteLine("Tag: " + dcmTag.Name); } else Console.WriteLine(string.Format("Tag: {0:x4}:{1:x4}", DicomExtensions.GetGroup(tag), DicomExtensions.GetElement(tag))); return true; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2